Software matematic Radu Tiberiu Trˆımbit as

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Software matematic Radu Tiberiu Trˆımbit as"

Transcript

1 Software matematic Radu Tiberiu Trîmbiţaş

2 ii

3 Prefaţă Pentru a descărca sursele din această carte şi soluţiile problemelor trimitem cititorul la pagina de web a autorului: tradu. Radu Tiberiu Trîmbiţaş iii

4 iv Prefaţă

5 Cuprins 1. Introducere în MATLAB Lansarea MATLAB şi sistemul de help Modul calculator Matrice Generarea matricelor Indexarea şi notaţia,,: Operaţii în sens matricial şi în sens tablou Analiza datelor Operatori relaţionali şi logici Programarea în MATLAB Fluxul de control Fişiere M Argumente funcţie Număr variabil de argumente Variabile globale Recursivitate Alte tipuri numerice Controlul erorilor Toolbox-urile Symbolic Probleme Grafică în MATLAB Grafice bidimensionale Grafice de bază v

6 vi Cuprins Axe şi adnotarea Mai multe grafice pe aceeaşi figură Grafice tridimensionale Salvarea şi imprimarea graficelor Facilităţi grafice noi în MATLAB Probleme Algebră liniară în MATLAB Rezolvarea sistemelor de ecuaţii liniare în MATLAB Sisteme pătratice Sisteme supradeterminate Sisteme subdeterminate Factorizarea LU şi Cholesky Factorizarea QR Polinoame şi potrivirea datelor în MATLAB Valori şi vectori proprii în MATLAB Probleme Interpolare în MATLAB Interpolare unidimensională Interpolarea funcţiilor de mai multe variabile în MATLAB Probleme Funcţii de funcţii Integrare numerică în MATLAB Calculul integralelor duble în MATLAB Ecuaţii neliniare şi minimizare Probleme Ecuaţii diferenţiale în MATLAB Rezolvitori Exemple non-stiff Opţiuni Ecuaţii stiff Tratarea evenimentelor Ecuaţii implicite Probleme Bibliografie 165 Indice 167

7 Lista surselor MATLAB 1.1 Funcţia stat Funcţia sqrtn Funcţia fd deriv Funcţia companb Funcţia momente Funcţia koch Fulgul lui Koch Reprezentarea grafică a unei funcţii implicite Exemplu de aproximare în sensul celor mai mici pătrate Sistemul lui Rössler Problemă stiff cu informaţii despre jacobian Problema celor două corpuri Funcţiile fox2 şi events pentru problema de urmărire vii

8 viii LISTA SURSELOR MATLAB

9 CAPITOLUL 1 Introducere în MATLAB Cuprins 1.1. Lansarea MATLAB şi sistemul de help Modul calculator Matrice Generarea matricelor Indexarea şi notaţia,,: Operaţii în sens matricial şi în sens tablou Analiza datelor Operatori relaţionali şi logici Programarea în MATLAB Fluxul de control Fişiere M Argumente funcţie Număr variabil de argumente Variabile globale Recursivitate Alte tipuri numerice Controlul erorilor Toolbox-urile Symbolic Probleme

10 2 Introducere în MATLAB MATLAB 1 este un sistem interactiv destinat calculelor numerice. Prima versiune MATLAB a fost scrisă în anii 7 de Cleve Moler. MATLAB uşurează sarcina utilizatorului de a rezolva problemele numerice. Aceasta permite concentrarea asupra părţii creatoare a rezolvării problemei şi încurajează experimentele. MATLAB utilizează algoritmi cunoscuţi şi testaţi, în care utilizatorul poate avea încredere. Operaţiile puternice se pot realiza uşor cu un număr mic de comenzi (de multe ori una sau două). Vă puteţi programa propriul set de funcţii pentru aplicaţia dumneavoastră. De asemenea, sunt disponibile facilităţi grafice excelente, iar imaginile pot fi inserate în documente LATEX sau Word. Pentru o introducere mai detaliată în MATLAB a se vedea [5, 15, 1] Lansarea MATLAB şi sistemul de help Sub sistemul de operare Windows, MATLAB se lansează dând un click dublu pe icon-ul corespunzător sau selectând programul din meniul de start. Prompterul din fereastra de comandă este indicat prin >>. MATLAB poate fi utilizat în mai multe moduri: ca un calculator avansat (când comenzile sunt introduse în linia de comandă de la tastatură), ca un limbaj de programare de nivel înalt şi sub formă de rutine apelate dintr-un limbaj de programare, de exemplu C. Informaţiile de help pot fi obţinute în mai multe moduri: din linia de comandă utilizând comanda help subiect ; dintr-o fereastră de help separată, deschisă prin meniul Help; utilizând MATLAB helpdesk memorat pe disc sau CD. Comanda help help da o scurtă descriere a sistemului de help, iar help fară nici un parametru dă o listă a subiectelor de help. Primele linii arată astfel HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. Pentru a obţine informaţii de help despre funcţiile elementare se tastează 1 MATLAB R este o marcă înregistrată a Mathworks Inc., Natick MA

11 1.2. Modul calculator 3 >> help elfun Pentru a obţine doar un ecran la un moment dat se poate introduce întâi comanda more on, adică >> more on >> help elfun Pentru a trece la următoarea pagină se poate apăsa orice tastă. O altă facilitate utilă este utilizarea unei comenzi de forma lookfor cuvant-cheie, care caută în fişierele help un cuvânt cheie. Propunem cititorului să testeze lookfor factorization, care dă informaţii despre rutinele de factorizare a matricelor, deosebit de utile în algebra liniară. Pentru începători şi cei care predau MATLAB demonstraţiile sunt foarte utile. Un set cuprinzător se poate lansa prin comanda >> demo Atenţie, ea şterge toate variabilele! Înafară de facilitatea de help on-line, există un sistem bazat pe hipertext, care dă detalii asupra asupra celor mai multe comenzi şi exemple. El este disponibil prin comanda doc Modul calculator Operaţiile aritmetice de bază sunt + - * / şi ridicarea la putere ˆ. Ordinea implicită a operaţiilor se poate schimba cu ajutorul parantezelor. MATLAB recunoşte mai multe tipuri de numere: întregi, cum are fi 1362 sau ; reale, de exemplu 1.234, 1.76; complexe, cum ar fi i, unde i = 1; Inf, desemnează infinitul; NaN, Not a Number, care se obţine ca rezultat al unei operaţii ilegale sau al unei nedeterminări din analiza matematică (/, /,, etc.). Notaţia cu exponent este de asemenea utilizată: e+3 = = e 1 = =.13412

12 4 Introducere în MATLAB Toate calculele se realizează în virgulă flotantă. Formatul în care MATLAB afişează numerele este controlat de comanda format. Tastaţi help format pentru o listă completă. Tabela următoare dă câteva exemple. Comanda format short format short e format long e format short g format bank Exemple de ieşiri (4 zecimale) e e (4 zecimale) 31.42(2 zecimale) Comanda format compact elimină liniile goale de la ieşire şi permite să se afişeze mai multă informaţie. Numele de variabile în MATLAB sunt formate din secvenţe de litere şi cifre, prima fiind o literă. Exemple: x, y, z525, TotalGeneral. Se face distincţie între literele mari şi cele mici. Există şi nume speciale, a căror folosire trebuie evitată, cum ar fi: - eps = 2.224e-16 = 2 54 este epsilon-ul maşinii care reprezintă cel mai mare număr cu proprietatea că 1+eps nu poate fi distins de 1; - pi = π. Dacă se fac calcule cu numere complexe folosirea variabilelor i şi j este contraindicată, deoarece ele desemnează unitatea imaginară. Dăm câteva exemple: >>x = 3-2ˆ4 x = -13 >>y = x*5 y = -65 >>eps 2.224e-16 Variabila specială ans păstrează valoarea ultimei expresii evaluate. Ea poate fi utilizată în expresii, la fel ca orice altă variabilă. >>3-2ˆ4-13 >>ans*5-65

13 1.2. Modul calculator 5 cos, sin, tan, csc, sec, cot acos, asin, atan, atan2, asec, acsc, acot cosh, sinh, tanh, sech, csch, coth acosh, asinh, atanh, asech, acsch, acoth log, log2, log1, exp, pow2, nextpow2 ceil, fix, floor, round abs, angle, conj, imag, real mod, rem, sign airy, bessel*, beta*, erf*, expint, gamma*, legendre factor, gcd, isprime, lcm, primes, nchoosek, perms, rat, rats cart2sph, cart2pol, pol2cart, sph2cart Funcţii trigonometrice Funcţii trigonometrice inverse Funcţii hiperbolice Funcţii hiperbolice inverse Funcţii exponenţiale Rotunjiri Complexe Rest, semn Funcţii matematice Funcţii din teoria numerelor Transformări de coordonate Tabela 1.1: Funcţii elementare şi funcţii matematice speciale ("fun*" indică existenţa mai multor funcţii al căror nume începe cu fun Dacă dorim să suprimăm afişarea ultimei expresii evaluate, vom pune caracterul,,; la sfârşitul expresiei. Pe o linie de comandă se pot introduce mai multe expresii. Ele pot fi separate prin virgulă, caz în care valoarea expresiei terminată cu virgulă va fi afişată, sau cu,,;, caz în care valoarea expresiei nu va fi afişată. >> x=-13; y = 5*x, z = xˆ2+y, z2 = xˆ2-y; y = -65 z = 14 Dacă dorim să salvăm variabile, o putem face cu comanda >>save nume-fisier lista-variabile unde variabilele din lista-variabile sunt separate prin blanc. Se pot folosi în numele de variabile construcţii de tip wildcard, desemnate prin *. Rezultatul salvării se păstrează în fişierul nume-fisier de tip.mat, în format binar, specific MA- TLAB. Variabilele salvate pot fi încărcate prin >>load nume-fisier

14 6 Introducere în MATLAB Se pot face salvări şi încărcări şi în format ascii, în dublă precizie sau prin adăugare la un fişier existent. Pentru detalii a se vedea help save şi help load. Lista variabilelor utilizate în sesiunea curentă se poate vizualiza cu whos: >>whos Name Size Bytes Class ans 1x1 8 double array i 1x1 8 double array v 1x3 24 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array z2 1x1 8 double array Grand total is 7 elements using 72 bytes Comanda >>diary nume-fisier salvează toate comenzile şi rezultatele afişate pe ecran (cu excepţia celor ale comenzilor grafice) în fişierul nume-fisier. Acest proces de,,jurnalizare se termină prin >>diary off MATLAB dispune de un set bogat de funcţii elementare, care apar organizate pe clase în tabela Matrice Matricele sunt tipuri de date fundamentale în MATLAB. Ele sunt de fapt tablouri multidimensionale în dublă precizie. Cele mai folosite sunt matricele bidimensionale, care sunt tablouri bidimensionale cu m linii şi n coloane. Vectorii linie (m = 1) şi coloană (n = 1) sunt cazuri particulare de matrice bidimensionale Generarea matricelor Există mai multe moduri de a genera matrice. Unul dintre ele este cel explicit, care utilizează parantezele pătrate. Ca separatori între elemente se folosesc blancul sau virgula în interiorul unei linii şi punctul şi virgula sau,,newline pentru a separa liniile: >> A = [ ] A =

15 1.3. Matrice 7 zeros Matricea nulă ones Matrice formată din elemente 1 eye Matricea identică repmat Replicarea şi pavarea tablourilor rand Numere aleatoare distribuite uniform randn Numere aleatoare distribuite normal linspace Vector de elemente echidistante logspace Vector de elemente spaţiate logaritmic Tabela 1.2: Funcţii pentru generarea de matrice >> B = [-1 2 5; 9 5] B = >> C = [, 1; 3, -2; 4, 2] C = Dimensiunea unei matrice se poate obţine cu comanda size: >> v = size(a) v = 2 3 >> [r, c] = size(a) r = 2 c = 3 Prima formă returnează un vector cu două elemente ce conţine numărul de linii şi respectiv de coloane. A doua pune dimensiunile în variabile separate. MATLAB are un set util de funcţii pentru construirea unor matrice speciale, vezi tabela 1.2. Matricele de zerouri, de elemente 1 şi matricele identice se obţin cu funcţiile zeros, ones şi respectiv eye. Toate au aceeaşi sintaxă. De exemplu, zeros(m,n) sau zeros([m,n]) produce o matrice m n de zerouri, în timp ce zeros(n) produce o matrice n n. Exemple: >> zeros(2)

16 8 Introducere în MATLAB >> ones(2,3) >> eye(3,2) 1 1 O situaţie comună se întâlneşte atunci când se doreşte construirea unei matrice identice sau nule având o dimensiune egală cu a unei matrice date A. Aceasta se poate face cu eye(size(a)). O funcţie înrudită cu size este funcţia length: length(a) este cea mai mare dintre dimensiunile lui A. Astfel, pentru un vector n 1 sau 1 n, x, length(x) returnează n. Funcţiile rand şi randn generează matrice de numere (pseudo-)aleatoare, utilizând aceeaşi sintaxă ca şi eye. Funcţia rand produce o matrice de numere aleatoare având distribuţia uniformă pe intervalul [,1]. Funcţia randn generează o matrice de numere aleatoare având distribuţia normală standard. Apelate fără argumente, ambele funcţii produc un singur număr aleator. >> rand.457 >> rand(3) În simulările şi experimentele cu numere aleatoare este important ca secvenţele de numere aleatoare să fie reproductibile. Numerele produse de rand depind de starea generatorului. Starea se poate seta prin comanda rand( state,j). Pentru j= generatorul rand este setat în starea iniţială (starea de la lansarea MATLAB). Pentru întregi j nenuli, generatorul este setat pe a j-a stare. Starea lui randn se setează în acelaşi mod. Perioadele lui rand şi randn, adică numărul de termeni generaţi înainte ca secvenţele să înceapă să se repete este mai mare decât Matricele se pot construi şi în formă de bloc. Din matricea B, definită prin B=[1 2; 3 4], putem crea >> C=[B, zeros(2); ones(2), eye(2)] C =

17 1.3. Matrice Matricele diagonale pe blocuri se pot defini utilizând funcţia blkdiag, care este mai uşor de utilizat decât notaţia cu paranteze pătrate. Exemplu: >> A=blkdiag(2*eye(2),ones(2)) A = Funcţia repmat permite construirea de matrice prin repetarea de subblocuri: repmat(a,m,n) crează o matrice de m pe n blocuri în care fiecare bloc este o copie a lui A. Dacă n lipseşte, valoarea sa implicită este m. Exemplu: >> A=repmat(eye(2),2) A = Sunt disponibile şi comenzi pentru manipularea matricelor; vezi tabela 1.3. reshape diag blkdiag tril triu fliplr flipud rot9 Schimbarea dimensiunii Matrice diagonale şi diagonale ale matricelor Matrice diagonală pe blocuri Extragerea părţii triunghiulare inferior Extragerea părţii triunghiulare inferior Rotire matrice în jurul axei de simetrie verticale Rotire matrice în jurul axei de simetrie orizontale Rotaţia unei matrice cu 9 de grade Tabela 1.3: Funcţii de manipulare a matricelor Funcţia reshape schimbă dimensiunile unei matrice: reshape(a,m,n) produce o matrice m pe n ale cărei elemente sunt luate coloană cu coloană din A. De exemplu: >>A=[1 4 9; ], B=reshape(A,3,2) A = B = 1 25

18 1 Introducere în MATLAB Funcţia diag lucrează cu diagonalele unei matrice şi poate avea ca argument o matrice sau un vector. Pentru un vector x, diag(x) este matricea cu diagonala principală x: >>diag([1,2,3]) Mai general, diag(x,k) pune x pe diagonala cu numărul k, unde k = înseamnă diagonala principală, k > specifică diagonale situate deasupra diagonalei principale, iar k < diagonale dedesubtul diagonalei principale: >> diag([1,2],1) 1 2 >> diag([3 4],-2) 3 4 Pentru o matrice A, diag(a) este vectorul coloană format din elementele de pe diagonala principală a lui A. Pentru a produce o matrice diagonală având aceaşi diagonală ca A se va utiliza diag(diag(a)). Analog cazului vectorial, diag(a,k) produce un vector coloană construit din a k-a diagonală a lui A. Astfel dacă A = atunci >> diag(a) >> diag(a,-1)

19 1.3. Matrice tril(a) obţine partea triunghiulară inferior a lui A (elementele situate pe diagonală principală şi dedesubtul ei şi în rest zero). Analog lucrează triu(a) pentru partea triunghiulară superior. Mai general, tril(a,k) dă elementele situate pe diagonala a k-a a lui A şi dedesubtul ei, în timp ce triu(a,k) dă elementele situate pe a k-a diagonală a lui A şi deasupra ei. Pentru A ca mai sus: >>tril(a) >>triu(a,1) >>triu(a,-1) MATLAB posedă un set de funcţii pentru generarea unor matrice speciale. Aceste matrice au proprietăţi interesante care le fac utile pentru construirea de exemple şi testarea algoritmilor. Ele sunt date în tabela 1.4. Funcţia gallery asigură accesul la o colecţie bogată de matrice de test creată de Nicholas J. Higham [6]. Pentru detalii vezi help gallery Indexarea şi notaţia,,: Pentru a permite accesul şi atribuirea la nivel de submatrice, MATLAB are o notaţie puternică bazată pe caracterul,,:. Ea este utilizată pentru a defini vectori care acţionează ca indici. Pentru scalarii i şi j, i:j desemnează vectorul linie cu elementele i, i+1,... j (pasul este 1). Un pas diferit, s, se specifică prin i:s:j. Exemple: >> 1: >> 4:-1:-2

20 12 Introducere în MATLAB compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson matrice companion colecţie de matrice de test matrice Hadamard matrice Hankel matrice Hilbert inversa matricei Hilbert pătrat magic matricea Pascal (coeficienţi binomiali) matrice simetrică pentru testarea valorilor proprii matrice Toeplitz matrice Vandermonde matricea lui Wilkinson pentru testarea valorilor proprii Tabela 1.4: Matrice speciale >> :.75: Elementele individuale ale unei matrice se accesează prin A(i,j), unde i 1 şi j 1 (indicii zero sau negativi nu sunt admişi în MATLAB). Notaţia A(p:q,r:s) desemnează submatricea constând din intersecţia liniilor de la p la q şi coloanelor de la r la s a lui A. Ca un caz special, caracterul,,: singur, ca specificator de linie şi coloană, desemnează toate elementele din acea linie sau coloană: A(:,j) este a j-a coloană a lui A, iar A(i,:) este a i-a linie. Cuvântul cheie end utilizat în acest context desemnează ultimul indice în dimensiunea specificată; astfel A(end,:) selectează ultima linie a lui A. În fine, o submatrice arbitrară poate fi selectată specificând indicii de linie şi coloană individuali. De exemplu, A([i,j,k],[p,q]) produce submatricea dată de intersecţia liniilor i, j şi k şi coloanelor p şi q. Iată câteva exemple ce utilizează matricea >> A = [ ] a primelor nouă numere prime: >> A(2,1) 7 >> A(2:3,2:3)

21 1.3. Matrice >> A(:,1) >> A(2,:) >> A([1 3],[2 3]) Un caz mai special este A(:)care desemnează un vector coloană ce conţine toate elementele lui A, aşezate coloană după coloană, de la prima la ultima >> B=A(:) B = Când apare în partea stângă a unei atriburi, A(:) completează A, păstrându-i forma. Cu astfel de notaţie, matricea de numere prime3 3, A, se poate defini prin >> A=zeros(3); A(:)=primes(23); A=A A = Funcţia primes returnează un vector de numere prime mai mici sau egale cu argumentul ei. Transpunerea A = A (vezi secţiunea 1.3.3) este necesară pentru a ordona numerele prime după linii nu după coloane. Legată de notaţia,,: este funcţia linspace, care în loc de increment acceptă număr de puncte: linspace(a,b,n) generează n puncte echidistante între a şi b. Dacă n lipseşte, valoarea sa implicită este 1. Exemplu:

22 14 Introducere în MATLAB >> linspace(-1,1,9) Columns 1 through Columns 8 through Notaţia [] înseamnă matricea vidă,. Atribuirea lui [] unei linii sau unei matrice este un mod de a şterge o linie sau o coloană a matricei: >>A(2,:)=[] A = Acelaşi efect se obţine cu A = A([1,3],:). Matricea vidă este de asemenea utilă ca indicator de poziţie într-o listă de argumente, aşa cum se va vedea în Operaţia Sens matricial Sens tablou Adunare + + Scădere - - Înmulţire *.* Împărţire stângă \.\ Împărţire uzuală /./ Ridicare la putere ˆ.ˆ Tabela 1.5: Operaţii pe matrice şi tablouri Operaţii în sens matricial şi în sens tablou Pentru scalarii a şi b, operaţiile +, -, / and ˆ produc rezultate evidente. Pe lângă operatorul uzual de împărţire, cu semnificaţia a b, MATLAB are operatorul de împărţire stângă (backslash\), cu semnificaţia b a. Pentru matrice, toate aceste operaţii pot fi realizate în sens matricial (în conformitate cu regulile algebrei matriciale) sau în sens tablou (element cu element). Tabela 1.5 dă lista lor. Operaţiile de adunare şi scădere sunt identice atât în sens matricial cât şi în sens tablou. Produsul A*B este înmulţirea matricială uzuală. Operatorii de împărţire / şi \ definesc soluţii ale sistemelor liniare: A\B este soluţia X a lui A*X = B, în timp ce A/B este soluţia lui X*B = A. Exemple: >> A=[2,3,5; 7,11,13; 17,19,23] A = 2 3 5

23 1.3. Matrice >> A=[1 2; 3 4], B=ones(2) A = B = >> A+B >> A*B >> A\B Înmulţirea şi împărţirea în sens tablou, sau pe elemente, se specifică precedând operatorul cu un punct. Dacă A şi B sunt matrice de aceeaşi dimensiune, atunci C = A.*B însemnă C(i,j)=A(i,j)*B(i,j) iar C = A.\B înseamnă C(i,j)=B(i,j)/A(i,j). Pentru A şi B ca în exemplul precedent: >> A.*B >> B./A Inversa unei matrice pătratice nesingulare se obţine cu funcţia inv, iar determinantul unei matrice pătratice cu det. Ridicarea la putere ˆ este definită ca putere a unei matrice, dar forma cu punct face ridicarea la putere element cu element. Astfel, dacă A este o matrice pătratică, atunci Aˆ2 este A*A, dar A.ˆ2 se obţine ridicând la pătrat fiecare element al lui A: >> Aˆ2, A.ˆ

24 16 Introducere în MATLAB Operaţia.ˆ permite ca exponentul să fie un tablou când dimensiunile bazei şi exponentului coincid, sau când baza este un scalar: >> x=[1 2 3]; y=[2 3 4]; Z=[1 2; 3 4]; >> x.ˆy >> 2.ˆx >> 2.ˆZ Ridicarea la putere a matricelor este definită pentru toate puterile, nu numai pentru întregi pozitivi. Dacă n< este un întreg, atunci Aˆn este definit prin inv(a)ˆ(-n). Pentru p neîntreg, Aˆp este evaluată utilizând valorile proprii ale lui A; rezultatul poate fi incorect sau imprecis dacă A nu este diagonalizabilă sau când A este prost condiţionată din punct de vedere al valorilor proprii. Transpusa conjugată a matricei A se obţine cu A. Dacă A este reală, atunci aceasta este transpusa obişnuită. Transpusa fără conjugare se obţine cu A.. Alternativele funcţionale ctranspose(a) şi transpose(a) sunt uneori mai convenabile. În cazul particular al vectorilor coloană x şi y, x *y este produsul scalar, care se poate obţine şi cu dot(x,y). Produsul vectorial a doi vectori se poate obţine cu cross. Exemplu: >> x=[-1 1] ; y=[3 4 5] ; >> x *y 2 >> dot(x,y) 2 >> cross(x,y)

25 1.3. Matrice 17 La adunarea dintre un scalar şi o matrice, MATLAB va expanda scalarul într-o matrice cu toate elementele egale cu acel scalar. De exemplu >> [4,3;2,1] >> A=[1-1]-6 A = -5-7 Totuşi, dacă atribuirea are sens fără expandare, atunci va fi interpretată în acest mod. Astfel, dacă comanda precedentă este urmată de A=1, A va deveni scalarul 1, nu ones(1,2). Dacă o matrice este înmulţită sau împărţită cu un scalar, operaţia se realizează element cu element: >> [3 4 5; 4 5 6]/ Funcţiile de matrice în sensul algebrei liniare au numele terminat în m: expm, funm, logm, sqrtm. De exemplu, pentru A = [2 2; 2], >> sqrt(a) >> sqrtm(a) >> ans*ans Analiza datelor Tabela 1.6 dă funcţiile de bază pentru analiza datelor. Cel mai simplu mod de utilizare a lor este să fie aplicate unui vector, ca în exemplele >> x=[ ] x = >> [min(x) max(x)]

26 18 Introducere în MATLAB max min mean median std var sort sum prod cumsum cumprod diff Maximul Minimul Media Mediana Abaterea medie pătratică Dispersia Sortare în ordine crescătoare Suma elementelor Produsul elementelor Suma cumulată Produsul cumulat Diferenţa elementelor Tabela 1.6: Funcţii de bază pentru analiza datelor -8 4 >>sort(x) >>sum(x) -5 Funcţia sort sortează crescător. Pentru un vector real x, se poate face sortarea descrescătoare cu -sort(-x). Pentru vectori complecşi, sort sortează după valorile absolute. Dacă argumentele sunt matrice, aceste funcţii acţionează pe coloane. Astfel, max şi min returnează un vector ce conţine elementul maxim şi respectiv cel minim al fiecărei coloane, sum returnează un vector ce conţine sumele coloanelor, iar sort sortează elementele din fiecare coloană a unei matrice în ordine crescătoare. Funcţiile min şi max pot returna un al doilea argument care specifică în care componente sunt situate elementul minim şi cel maxim. De exemplu, dacă A = atunci >>max(a) 5 2 2

27 1.3. Matrice 19 >>[m,i]=min(a) m = -3-4 i = Aşa cum ne arată acest exemplu, dacă există două sau mai multe elemente minimale într-o coloană, se returnează numai indicele primului. Cel mai mic element dintr-o matrice se poate obţine aplicând min de două ori succesiv: >>min(min(a)) -4 sau utilizând >> min(a(:)) -4 Funcţiile max şi min pot fi făcute să acţioneze pe linie printr-un al treilea argument: >>max (A,[],2) Argumentul 2 din max(a,[],2) specifică maximul după a doua dimensiune, adică după indicele de coloană. Al doilea argument vid [] este necesar, deoarece max sau min cu două argumente returnează maximul sau minimul celor două argumente: >>max(a,) Funcţiile sort şi sum pot fi şi ele făcute să acţioneze pe linii, printr-un al doilea argument. Pentru detalii a se vedea help sort sau doc sort. Funcţia diff calculează diferenţe. Aplicată unui vector x de lungime n produce vectorul [x(2)-x(1) x(3)-x(2)... x(n)-x(n-1)] de lungime n-1. Exemplu >>x=(1:8).ˆ2 x = >>y=diff(x)

28 2 Introducere în MATLAB y = >>z=diff(y) z = Operatori relaţionali şi logici Operatorii relaţionali în MATLAB sunt: == (egal), =(diferit), < (mai mic), > (mai mare), <= (mai mic sau egal) şi >= (mai mare sau egal). De notat că un singur egal = înseamnă atribuire. Comparaţia între scalari produce 1 dacă relaţia este adevărată şi în caz contrar. Comparaţiile sunt definite între matrice de aceeaşi dimensiune şi între o matrice şi un scalar, rezultatul fiind în ambele cazuri o matrice de şi 1. La comparaţia matricematrice se compară perechile corespunzătoare de elemente, pe când la comparaţia matrice-scalar se compară scalarul cu fiecare element. De exemplu: >> A=[1 2; 3 4]; B = 2*ones(2); >> A == B 1 >>A > Pentru a testa dacă dacă matricele A şi B sunt identice, se poate utiliza expresia isequal(a,b): >> isequal(a,b) Mai există şi alte funcţii logice înrudite cu isequal şi al căror nume începe cu is. O selecţie a lor apare în tabela 1.7; pentru o listă completă a se tasta doc is. Funcţia isnan este utilă deoarece testul x == NaN produce întotdeauna (false), chiar dacă x este NaN! (Un NaN este prin definiţie diferit de orice şi nu are o relaţie de ordine cu nimic.) Operatorii logici în MATLAB sunt: & (şi), (sau), (not), xor (sau exclusiv), all (adevărat dacă toate elementele unui vector sunt nenule), any (adevărat dacă cel puţin un element al unui vector este nenul). Dăm câteva exemple: >> x = [-1 1 1]; y = [1 2-3]; >> x> & y>

29 1.3. Matrice 21 ischar isempty isequal isfinite isieee isinf islogical isnan isnumeric isreal issparse Testează dacă argumentul este şir de caractere(string) Testează dacă argumentul este vid Testează dacă tablourile sunt identice Testează dacă elementele unui tablou sunt finite Testeză dacă maşina utilizează aritmetica IEEE Testează dacă elementele unui tablou sunt inf Testează dacă argumentul este un tablou logic Test de NaN Testează dacă argumentul este numeric Testează dacă argumentul este tablou real Testează dacă argumentul este tablou rar Tabela 1.7: O selecţie de funcţii logice is* 1 >> x> y> >> xor(x>,y>) 1 1 >> any(x>) 1 >>all(x>) De notat că xor trebuie apelat ca o funcţie: xor(a,b). Operatorii logici and, or, not şi cei relaţionali pot fi apelaţi şi în formă funcţională: and(a,b),..., eq(a,b),... (vezi help ops). Precedenţa operatorilor este rezumată în tabela 1.8 (vezi help precedence). MATLAB evaluează operatorii de precedenţă egală de la stânga la dreapta. Precedenţa se poate modifica cu ajutorul parantezelor. De notat că versiunile MATLAB anterioare lui MATLAB 6 aveau aceeaşi precedenţă pentru and şi or (spre deosebire de majoritatea limbajelor de programare). MathWorks recomandă folosirea parantezelor pentru a garanta obţinerea rezultatelor identice în toate versiunile MATLAB. Pentru matrice all returnează un vector linie ce conţine rezultatul lui all aplicat fiecărei coloane. De aceea all(all(a=b)) este un alt mod de a testa egalitatea matricelor A şi B. Funcţia any lucrează analog; de exemplu, any(any(a==b)) re-

30 22 Introducere în MATLAB Nivel de precedenţă Operator 1 (cea mai mare) transpusa (. ), putere(.ˆ), transpusa conjugată complexă( ), putere matricială(ˆ) 2 plus unar (+), minus unar (-), negaţie ( ) 3 înmulţire (.*), împărţire dreaptă (./), împărţire stângă (.\), înmulţire matricială (*), împărţire dreaptă matricială (/), împărţire stângă matricială (\) 4 adunare (+), scădere (-) 5 două puncte (:) 6 mai mic (<), mai mic sau egal (<=), mai mare (>), mai mare sau egal (>=), egal (==), diferit (~=) 7 şi logic (&) 8 (cea mai mică) sau logic ( ) Tabela 1.8: Precedenţa operatorilor turnează 1 dacă A şi B au cel puţin un element egal şi în caz contrar. Comanda find returnează indicii corespunzători elementelor nenule ale unui vector. De exemplu, >> x = [-3 1 -inf ]; >> f = find(x) f = Rezultatul lui find poate fi apoi utilizat pentru a selecta doar acele elemente ale vectorului: >> x(f) Inf Cu x ca în exemplul de mai sus, putem utiliza find pentru a obţine elementele finite ale lui x, >> x(find(isfinite(x))) -3 1 şi să înlocuim componentele negative ale lui x cu zero: >> x(find(x<))= x = 1

31 1.3. Matrice 23 Când find se aplică matricei A, vectorul de indici corespunde lui A privită ca un vector coloană obţinut din aşezarea coloanelor una peste alta (adică A(:)), şi acest vector poate fi utilizat pentru a indexa A. În exemplul următor se utilizează find pentru a face zero toate elementele lui A care sunt mai mici decât elementele corespunzătoare ale lui B: >> A = [4 2 16; ], B = [12 3 1; 1-1 7] A = B = >> f = find(a<b) f = >> A(f) = A = În cazul matricelor, putem utiliza find sub forma [i,j] = find(a), care returnează vectorii i şi j ce conţin indicii de linie şi coloană ale elementelor nenule. Rezultatele operatorilor logici şi ale funcţiilor logice din MATLAB sunt tablouri de elemente şi 1, care sunt exemple de tablouri logice. Astfel de tablouri pot fi create şi prin aplicarea funcţiei logical unui tablou numeric. Tablourile logice pot fi utilizate la indexare. Fie exemplul >> clear >> y = [1 2-3 ] y = >> i1 = logical(y) Warning: Values other than or 1 converted to logical 1(Type "warning off MATLAB:conversionToLogical" to suppress this warning.) >> i1 = >> i2 = ( y = ) i2 = >> i3 = [1 1 1 ] i3 = 1 1 1

32 24 Introducere în MATLAB >> whos Name Size Bytes Class i1 1x5 5 logical array i2 1x5 5 logical array i3 1x5 4 double array y 1x5 4 double array Grand total is 2 elements using 9 bytes >> y(i1) >> y(i2) >> isequal(i2,i3) 1 >> y(i3)??? Subscript indices must either be real positive integers or logicals. Acest exemplu ilustrează regula că A(M), unde M este un tablou logic de aceeaşi dimensiune ca şi A, extrage elementele lui A corespunzând elementelor lui M cu partea reală nenulă. Chiar dacă i2 are aceleaşi elemente ca i3 (şi la comparaţie ele ies egale), doar tabloul logic i2 poate fi utilizat la indexare. Un apel la find poate fi uneori evitat dacă argumentul său este un tablou logic. În exemplul precedent, x(find(isfinite(x))) poate fi înlocuit cu x(isfinite(x)). Se recomandă utilizarea lui find pentru claritate Programarea în MATLAB Fluxul de control MATLAB are patru structuri de control: instrucţiunea if, instrucţiunea de ciclare for, instrucţiunea de ciclare while şi instrucţiunea switch. Cea mai simplă formă a instrucţiunii if este if expresie instrucţiuni end unde secvenţa instrucţiuni este executată dacă părţile reale ale elementelor lui expresie sunt toate nenule. Secvenţa de mai jos interschimbă x şi y dacă x este mai mare decât y: if x > y temp = y;

33 1.4. Programarea în MATLAB 25 y = x; x = temp; end Atunci când o instrucţiune if este urmată în aceeaşi linie de alte instrucţiuni, este nevoie de o virgulă pentru a separa if-ul de instrucţiunea următoare: if x >, x = sqrt(x); end Alternativa se implementează cu else, ca în exemplul a = piˆexp(1); c = exp(pi); if a >= c b = sqrt(aˆ2-cˆ2) else b = end În fine, se pot introduce teste suplimentare cu elseif (de notat că nu este nici un spaţiu între else şi if): >> if a >= c b = sqrt(aˆ2-cˆ2) elseif aˆc > cˆa b = cˆa/aˆc else b = aˆc/cˆa end Într-un test if de forma,,if condiţie1 & condiţie2, condiţie2 nu este evaluată dacă condiţie1 este falsă (aşa-numită evaluare prin scurtcircuit). Acest lucru este util când evaluarea lui condiţie2 ar putea da o eroare probabil din cauza unei variabile nedefinite sau a unei depăşiri de indice. Ciclul for este una dintre cele mai utile construcţii MATLAB, deşi codul este mai compact fără ea. Sintaxa ei este for variabilă = expresie instrucţiuni end De obicei, expresie este un vector de forma i:s:j. Instrucţiunile sunt executate pentru variabilă egală cu fiecare element al lui expresie în parte. De exemplu, suma primilor 25 de termeni ai seriei armonice 1/i se calculează prin >> s = ; >> for i = 1:25, s = s + 1/i; end, s s = 3.816

34 26 Introducere în MATLAB Un alt mod de a defini expresie este utilizarea notaţiei cu paranteze pătrate: for x = [pi/6 pi/4 pi/3], disp([x, sin(x)]), end Ciclurile for pot fi imbricate, indentarea ajutând în acest caz la creşterea lizibilităţii. Editorul-debuger-ul MATLAB poate realiza indentarea automată. Codul următor construieşte o matrice simetrică 5 pe 5, A, cu elementul (i,j) egal cu i/j pentru j i: n = 5; A = eye(n); for j=2:n for i = 1:j-1 A(i,j)=i/j; A(j,i)=i/j; end end Expresia din ciclul for poate fi o matrice, în care caz lui variabilă i se atribuie succesiv coloanele lui expresie, de la prima la ultima. De exemplu, pentru a atribui lui x fiecare vector al bazei canonice, putem scrie for x=eye(n),..., end. Ciclul while are forma while expresie instrucţiuni end Secvenţa instrucţiuni se execută atât timp cât expresie este adevărată. Exemplul următor aproximează cel mai mic număr nenul în virgulă flotantă: x = 1; while x>, xmin = x; x = x/2; end, xmin xmin = 4.947e-324 Execuţia unui ciclu while sau for poate fi terminată cu o instrucţiune break, care dă controlul primei instrucţiuni de după end-ul corespunzător. Construcţia while 1,..., end, reprezintă un ciclu infinit, care este util atunci când nu este convenabil să se pună testul la începutul ciclului. (De notat că, spre deosebire de alte limbaje, MA- TLAB nu are un ciclu,,repeat-until.) Putem rescrie exemplul precedent mai concis prin x = 1; while 1 xmin = x; x = x/2;

35 1.4. Programarea în MATLAB 27 if x ==, break, end end xmin Într-un ciclu imbricat un break iese în ciclul de pe nivelul anterior. Instrucţiunea continue cauzează trecerea controlului la execuţia unui ciclu for sau while următoarei iteraţii, sărind instrucţiunile rămase din ciclu. Un exemplu trivial este: for i=1:1 if i < 5, continue, end disp(i) end care afişează întregii de la 5 la 1. Structura de control cu care încheiem este instrucţiunea switch. Ea constă din,,switch expresie urmată de o listă de instrucţiuni,,case expresie instrucţiuni, terminată opţional cu,,otherwise instrucţiuni şi urmată de end. Exemplul următor evaluează p-norma unui vector x pentru trei valori ale lui p: switch(p) case 1 y = sum(abs(x)); case 2 y = sqrt(x *x); case inf y = max(abs(x)); otherwise error( p poate fi 1, 2 sau inf. ) end Funcţia error generează un mesaj de eroare şi opreşte execuţia curentă. Expresia ce urmeză după case poate fi o listă de valori delimitate de acolade. Expresia din switch poate coincide cu orice valoare din listă: x = input( Enter a real number: ) switch x case {inf, -inf} disp( Plus or minus infinity ) case disp( Zero ) otherwise disp( Nonzero and finite ) end

36 28 Introducere în MATLAB Construcţia switch din MATLAB se comportă diferit de cea din C sau C++ : odată ce MATLAB a selectat un grup de expresii case şi instrucţiunile sale au fost executate, se dă controlul primei instrucţiuni de după switch, fără a fi nevoie de instrucţiuni break Fişiere M Fişierele M din MATLAB sunt echivalentele programelor, funcţiilor, subrutinelor şi procedurilor din alte limbaje de programare. Ele oferă următoarele avantaje: experimentarea algoritmului prin editare, în loc de a retipări o listă lungă de comenzi; înregistrarea permanentă a unui experiment; construirea de utilitare, care pot fi utilizate repetat; schimbul de fişiere M. Multe fişiere M scrise de entuziaşti pot fi obţinute de pe Internet, pornind de la pagina de web Există şi grupul de ştiri comp.soft-sys.matlab, dedicat MATLAB. (Grupurile de ştiri pot fi citite în mai multe moduri, inclusiv printr-un web browser.) Se pot obţine detalii tastând info la prompterul MATLAB. Un fişier M este un fişier text cu extensia (tipul).m ce conţine comenzi MA- TLAB. Ele sunt de două tipuri: Fişiere M de tip script (sau fişiere de comenzi) nu au nici un argument de intrare sau ieşire şi operează asupra variabilelor din spaţiul de lucru. Fişiere M de tip funcţie conţin o linie de definiţie function şi pot accepta argumente de intrare şi returna argumente de ieşire, iar variabilele lor interne sunt locale funcţiei (înafară de cazul când sunt declarate global). Un fişier script permite memorarea unei secvenţe de comenzi care sunt utilizate repetat sau vor fi necesare ulterior. Script-ul de mai jos utilizează numerele aleatoare pentru a simula un joc. Să considerăm 13 cărţi de pică care sunt bine amestecate. Probabilitatea de a alege o carte particulară din pachet este 1/13. Acţiunea de extragere a unei cărţi se implementează prin generarea unui număr aleator. Jocul continuă prin punerea cărţii înapoi în pachet şi reamestecare până când utilizatorul apasă o tastă diferită de r sau s-a atins numărul de repetări (2). %JOCCARTI %Simularea unui joc de carti

37 1.4. Programarea în MATLAB 29 rand( state,sum(1*clock)); for k=1:2 n=ceil(13*rand); fprintf( Cartea extrasa: %3.f\n,n) disp( ) disp( Apasati r si Return pentru a continua ) r=input( sau orice litera pentru a termina:, s ); if r = r, break, end end Linia rand( state,sum(1*clock)); resetează de fiecare dată generatorul la o stare diferită. Primele două linii ale acestui fişier script încep cu simbolul % şi deci sunt linii de comentariu. Ori de câte ori MATLAB întâlneşte un % va ignora restul liniei. Aceasta ne permite să inserăm texte explicative care vor face fişierele M mai uşor de înţeles. Începând cu versiunea 7 se admit blocuri de comentarii, adică comentarii care să se întindă pe mai multe linii. Ele sunt delimitate prin operatorii %{ şi %}. Ei trebuie să fie singuri pe linie, ca în exemplul: %{ Comentariu bloc pe doua linii %} Dacă script-ul de mai sus este memorat în fişierul joccarti.m, tastând joccarti se obţine: >> joccarti Cartea extrasa: 7 Apasati r si Return pentru a continua sau orice litera pentru a termina: r Cartea extrasa: 3 Apasati r si Return pentru a continua sau orice litera pentru a termina: a >> Fişierele M de tip funcţie permit extinderea limbajului MATLAB prin scrierea de funcţii proprii care acceptă şi returnează argumente. Ele se pot utiliza în acelaşi mod ca funcţiile MATLAB existente, cum ar fi sin, eye, size, etc. Sursa MATLAB 1.1 dă o funcţie simplă care calculează media şi abaterea medie pătratică a unei selecţii (vector). Acest exemplu ilustrează unele facilităţi ale

38 3 Introducere în MATLAB Sursa MATLAB 1.1 Funcţia stat function [med,abmp] = stat(x) %STAT Media si abaterea medie patratica a unei selectii % [MED,ABMP] = STAT(X) calculeaza media si abaterea % medie patratica a selectiei X n = length(x); med = sum(x)/n; abmp = sqrt(sum((x-med).ˆ2)/n); funcţiilor. Prima linie începe cu cuvântul cheie function urmat de argumentele de ieşire, [med,abmp] şi de simbolul =. În dreapta = urmează numele funcţiei, stat, urmat de argumentele de intrare, în cazul nostru x, între paranteze. (În general, putem avea orice număr de argumente de intrare şi de ieşire.) Numele de funcţie trebuie să fie la fel ca al fişierului.m în care funcţia este memorată în cazul nostru stat.m. A doua linie a unui fişier funcţie se numeşte linie H1 sau help 1. Se recomandă ca ea să aibă următoarea formă: să înceapă cu un %, urmat fără nici un spaţiu de numele funcţiei cu litere mari, urmat de unul sau mai multe spaţii şi apoi o scurtă descriere. Descrierea va începe cu o literă mare, se va termina cu un punct, iar dacă este în engleză se vor omite cuvintele the şi a. Când se tastează help nume functie, toate liniile, de la prima linie de comentariu pâna la prima linie care nu este de comentariu (de obicei o linie goală, pentru lizibilitatea codului sursă) sunt afişate pe ecran. Deci, aceste linii descriu funcţia şi argumentele sale. Se convine ca numele de funcţie şi de argumente să se scrie cu litere mari. Pentru exemplul stat.m avem >>help stat STAT media si abaterea medie patratica a unei selectii [MED,ABMP] = STAT(X) calculeaza media si abaterea medie patratica a selectiei X Se recomandă documentarea tuturor funcţiilor utilizator în acest mod, oricât de scurte ar fi. Este util ca în liniile de comentariu din text sa apară data scrierii funcţiei şi datele când s-au făcut modificări. Comanda help lucrează similar şi pe fişiere script. Funcţia stat se apelează la fel ca orice funcţie MATLAB: >> [m,a]=stat(1:1) m = 5.5 a = >> x=rand(1,1); [m,a]=stat(x)

39 1.4. Programarea în MATLAB 31 m = a = O funcţie mai complicată este sqrtn, ilustrată în sursa 1.2. Dându-se a >, ea calculează a cu metoda lui Newton, x k+1 = 1 ) (x k + axk, x 1 = a, 2 afişând şi iteraţiile. Dăm exemple de utilizare: >> [x,it]=sqrtn(2) k x_k er. relativa 1: 1.5e+ 3.33e-1 2: e+ 5.88e-2 3: e+ 1.73e-3 4: e+ 1.5e-6 5: e+ 1.13e-12 6: e+.e+ x = it = 6 >> x=sqrtn(2,1e-4) k x_k er. relativa 1: 1.5e+ 3.33e-1 2: e+ 5.88e-2 3: e+ 1.73e-3 4: e+ 1.5e-6 x = Acest fişier M utilizează comanda return, care dă controlul apelantului. Spre deosebire de alte limbaje de programare, nu este necesar să se pună return la sfârşitul unei funcţii sau al unui script. Funcţia nargin returnează numărul de argumente de intrare cu care funcţia a fost apelată şi permite atribuirea de valori implicite argumentelor nespecificate. Dacă apelul lui sqrtn nu a furnizat o valoare pentru tol, atunci tol primeşte valoarea eps. Numărul de argumente la ieşire este returnat de funcţia nargout. Un fişier M de tip funcţie poate conţine alte funcţii, numite subfuncţii, care pot să apară în orice ordine după funcţia principală (sau primară). Subfuncţiile sunt vizibile numai din funcţia principală sau din alte subfuncţii. Ele realizează calcule care

40 32 Introducere în MATLAB Sursa MATLAB 1.2 Funcţia sqrtn function [x,iter] = sqrtn(a,tol) %SQRTN Radical cu metoda lui Newton. % X = SQRTN(A,TOL) calculeaza radacina patrata a lui % A prin metoda lui Newton(sau a lui Heron). % presupunem ca A >=. % TOL este toleranta (implicit EPS). % [X,ITER] = SQRTN(A,TOL) returneaza numarul de % iteratii ITER necesare. if nargin < 2, tol = eps; end x = a; iter = ; xdiff = inf; fprintf( k x_k er. relativa\n ) for k=1:5 iter = iter + 1; xold = x; x = (x + a/x)/2; xdiff = abs(x-xold)/abs(x); fprintf( %2.f: %2.16e %9.2e\, iter, x, xdiff) if xdiff <= tol, return, end end error( Nu s-a atins precizia dupa 5 de iteratii. ) trebuie separate de funcţia principală, dar nu sunt necesare în alte fişiere M, sau supraîncarcă funcţii cu acelaşi nume (subfuncţiile au prioritate mai mare). Help-ul pentru o subfuncţie se poate specifica punând numele funcţiei urmat de / şi numele subfuncţiei. Pentru a crea şi edita fişiere M avem două posibilităţi. Putem utiliza orice editor pentru fişiere ASCII sau putem utiliza MATLAB Editor/Debugger. Sub Windows el se apelează prin comanda edit sau din opţiunile de meniu File-New sau File-Open. Sub Unix se apelează doar prin comanda edit. Editorul/debugger-ul MATLAB are diverse faciltăţi care ajută utilizatorul, cum ar fi indentarea automată a ciclurilor şi structurilor de control, evidenţierea sintaxei prin culori, verificarea perechilor de paranteze şi apostrofuri. Cele mai multe funcţii MATLAB sunt fişiere M păstrate pe disc, dar există şi funcţii predefinite conţinute în interpretorul MATLAB. Calea MATLAB (MATLAB

41 1.4. Programarea în MATLAB 33 path) este o listă de directori care specifică unde caută MATLAB fişierele M. Un fişier M este disponibil numai dacă este pe calea MATLAB. Drumul poate fi setat şi modificat prin comenzile path şi addpath, sau prin utilitarul (fereastra) path Browser, care se apelează din opţiunea de meniu File-Set Path sau tastând pathtool. Un script (dar nu şi o funcţie) care nu este pe calea de căutare se poate executa cu run urmat de calea completă până la fişierul M. Un fişier M se poate afişa pe ecran cu comanda type. Un aspect important al MATLAB este dualitatea comenzi-funcţii. Înafară de forma clasică, nume, urmat de argumente între paranteze, funcţiile pot fi apelate şi sub forma nume, urmat de argumente separate prin spaţii. MATLAB presupune în al doilea caz că argumentele sunt şiruri de caractere. De exemplu apelurile format long şi format( long ) sunt echivalente. MATLAB 7 permite definirea de funcţii imbricate, adică funcţii conţinute în corpul altor funcţii. În exemplul care urmează, funcţia F2 este imbricată în funcţia F1: function x = F1(p1,p2)... F2(p2) function y = F2(p3)... end... end Ca orice altă funcţie, o funcţie imbricată are propriul său spaţiu de lucru în care se memorează variabilele pe care le utilizează. Ea are de asemenea acces la spaţiul de lucru al tuturor funcţiilor în care este imbricată. Astfel, de exemplu, o variabilă care are o valoare atribuită ei de funcţia exterioară poate fi citită şi modificată de o funcţie imbricată la orice nivel în funcţia exterioară. Variabilele create într-o funcţie imbricată pot fi citite sau modificate în orice funcţie care conţine funcţia imbricată Argumente funcţie În multe probleme, cum ar fi integrarea numerică, rezolvarea unor ecuaţii operatoriale, minimizarea unei funcţii, este nevoie ca o funcţie să fie transmisă ca argument unei alte funcţii. Aceasta se poate realiza în mai multe feluri, depinzând de modul în care funcţia apelată a fost scrisă. Vom ilustra aceasta cu funcţia ezplot, care reprezintă grafic funcţia f(x) peste domeniul implicit [ 2π, 2π]. Un prim mod este transmiterea funcţiei printr-o construcţie numită function handle. Acesta este un tip de date MATLAB care conţine toate informaţiile necesare pentru a evalua o funcţie. Un function handle poate fi creat punând în faţa numelui de funcţie.

42 34 Introducere în MATLAB Astfel, dacă fun este un fişier M de tip funcţie de forma cerută de ezplot, atunci putem tasta ezplot(@fun) fun poate fi numele unei funcţii predefinite: ezplot(@sin) Numele unei funcţii poate fi transmis ca un şir de caractere: ezplot( exp ) Function handle a fost introdus începând cu MATLAB 6 şi este de preferat utilizării şirurilor, fiind mai eficient şi mai versatil. Totuşi, ocazional se pot întâlni funcţii care să accepte argumente de tip funcţie sub formă de şir, dar nu sub formă de function handle. Conversia dintr-o formă în alta se poate face cu func2str şi str2func (vezi help function handle). Mai există două moduri de a transmite o funcţie lui ezplot: ca expresie între apostrofuri, ezplot( xˆ2-1 ), ezplot( 1/(1+xˆ2) ) sau ca obiect inline ezplot(inline( exp(x)-1 )) Un obiect inline este o funcţie definită printr-un şir şi care poate fi atribuită unei variabile şi apoi evaluată: >> f=inline( exp(x)-1 ), f(2) f = Inline function: f(x) = exp(x) MATLAB determină şi ordonează argumentele unei funcţii inline. Dacă acest lucru nu este satisfăcător, argumentele se pot defini şi ordona explicit, transmiţând lui inline parametrii suplimentari: >> f = inline( log(a*x)/(1+yˆ2) ) f = Inline function: f(a,x,y) = log(a*x)/(1+yˆ2) >> f = inline( log(a*x)/(1+yˆ2), x, y, a ) f = Inline function: f(x,y,a) = log(a*x)/(1+yˆ2) Începând cu versiunea 7, MATLAB permite funcţii anonime. Ele pot fi definite în linii de comandă, fişiere M de tip funcţie sau script şi nu necesită un fişier M. Sintaxa pentru crearea unei funcţii anonime este f

Metode iterative pentru probleme neliniare - contractii

Metode iterative pentru probleme neliniare - contractii Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii

Διαβάστε περισσότερα

Metode de interpolare bazate pe diferenţe divizate

Metode de interpolare bazate pe diferenţe divizate Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare

Διαβάστε περισσότερα

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a. Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă

Διαβάστε περισσότερα

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele

Διαβάστε περισσότερα

Seminar 5 Analiza stabilității sistemelor liniare

Seminar 5 Analiza stabilității sistemelor liniare Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare

Διαβάστε περισσότερα

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică Gh. Asachi Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia

Διαβάστε περισσότερα

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE. 5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este

Διαβάστε περισσότερα

Sisteme diferenţiale liniare de ordinul 1

Sisteme diferenţiale liniare de ordinul 1 1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1 Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui

Διαβάστε περισσότερα

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale. 5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța

Διαβάστε περισσότερα

Esalonul Redus pe Linii (ERL). Subspatii.

Esalonul Redus pe Linii (ERL). Subspatii. Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste

Διαβάστε περισσότερα

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare 1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe

Διαβάστε περισσότερα

Matrice. Determinanti. Sisteme liniare

Matrice. Determinanti. Sisteme liniare Matrice 1 Matrice Adunarea matricelor Înmulţirea cu scalar. Produsul 2 Proprietăţi ale determinanţilor Rangul unei matrice 3 neomogene omogene Metoda lui Gauss (Metoda eliminării) Notiunea de matrice Matrice

Διαβάστε περισσότερα

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă. III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar

Διαβάστε περισσότερα

Integrala nedefinită (primitive)

Integrala nedefinită (primitive) nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei

Διαβάστε περισσότερα

Curs 4 Serii de numere reale

Curs 4 Serii de numere reale Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni

Διαβάστε περισσότερα

Analiză numerică O introducerere bazată pe MATLAB

Analiză numerică O introducerere bazată pe MATLAB Analiză numerică O introducerere bazată pe MATLAB Radu Tiberiu Trîmbiţaş Prefaţă Lloyd N. Trefethen a propus următoarea definiţie a Analizei numerice: Analiza numerică este studiul algoritmilor pentru

Διαβάστε περισσότερα

1 Πίνακες και διανύσματα στο MATLAB

1 Πίνακες και διανύσματα στο MATLAB 1 Πίνακες και διανύσματα στο MATLAB Η λέξη MATLAB προέρχεται από τα πρώτα γράμματα των λέξεων MATrix LABoratory (εργαστήριο πινάκων). Το όνομά του λογισμικού φανερώνει την έμφαση που έδωσαν οι συγγραφείς

Διαβάστε περισσότερα

INTRODUCERE ÎN PROGRAMAREA MATLAB

INTRODUCERE ÎN PROGRAMAREA MATLAB LUCRAREA Nr. 2 INTRODUCERE ÎN PROGRAMAREA MATLAB. Obiective Lucrarea are ca scop însuşirea modului de lucru cu produsul program Matlab pentru calcul numeric, utilizând funcńii matematice uzuale. 2. NoŃiuni

Διαβάστε περισσότερα

Curs 1 Şiruri de numere reale

Curs 1 Şiruri de numere reale Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,

Διαβάστε περισσότερα

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ

Διαβάστε περισσότερα

Sisteme liniare - metode directe

Sisteme liniare - metode directe Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K

Διαβάστε περισσότερα

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă Noţiunea de spaţiu liniar 1 Noţiunea de spaţiu liniar Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară 2 Mulţime infinită liniar independentă 3 Schimbarea coordonatelor unui vector la o schimbare

Διαβάστε περισσότερα

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,

Διαβάστε περισσότερα

Asupra unei inegalităţi date la barajul OBMJ 2006

Asupra unei inegalităţi date la barajul OBMJ 2006 Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale

Διαβάστε περισσότερα

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,

Διαβάστε περισσότερα

MARCAREA REZISTOARELOR

MARCAREA REZISTOARELOR 1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea

Διαβάστε περισσότερα

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:

Διαβάστε περισσότερα

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,

Διαβάστε περισσότερα

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.

Διαβάστε περισσότερα

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice Teme de implementare in Matlab pentru Laboratorul de Metode Numerice As. Ruxandra Barbulescu Septembrie 2017 Orice nelamurire asupra enunturilor/implementarilor se rezolva in cadrul laboratorului de MN,

Διαβάστε περισσότερα

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă Coordonatori DANA HEUBERGER NICOLAE MUŞUROIA Nicolae Muşuroia Gheorghe Boroica Vasile Pop Dana Heuberger Florin Bojor MATEMATICĂ DE EXCELENŢĂ pentru concursuri, olimpiade şi centre de excelenţă Clasa a

Διαβάστε περισσότερα

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice 1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă

Διαβάστε περισσότερα

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:

Διαβάστε περισσότερα

III. Reprezentarea informaţiei în sistemele de calcul

III. Reprezentarea informaţiei în sistemele de calcul Metode Numerice Curs 3 III. Reprezentarea informaţiei în sistemele de calcul III.1. Reprezentarea internă a numerelor întregi III. 1.1. Reprezentarea internă a numerelor întregi fără semn (pozitive) Reprezentarea

Διαβάστε περισσότερα

5.4. MULTIPLEXOARE A 0 A 1 A 2

5.4. MULTIPLEXOARE A 0 A 1 A 2 5.4. MULTIPLEXOARE Multiplexoarele (MUX) sunt circuite logice combinaţionale cu m intrări şi o singură ieşire, care permit transferul datelor de la una din intrări spre ieşirea unică. Selecţia intrării

Διαβάστε περισσότερα

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER 2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care

Διαβάστε περισσότερα

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul

Διαβάστε περισσότερα

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0 Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,

Διαβάστε περισσότερα

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005. SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care

Διαβάστε περισσότερα

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1) Ecuatii exponentiale Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. Cea mai simpla ecuatie exponentiala este de forma a x = b, () unde a >, a. Afirmatia.

Διαβάστε περισσότερα

Criptosisteme cu cheie publică III

Criptosisteme cu cheie publică III Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.

Διαβάστε περισσότερα

1.3 Baza a unui spaţiu vectorial. Dimensiune

1.3 Baza a unui spaţiu vectorial. Dimensiune .3 Baza a unui spaţiu vectorial. Dimensiune Definiţia.3. Se numeşte bază a spaţiului vectorial V o familie de vectori B care îndeplineşte condiţiile de mai jos: a) B este liniar independentă; b) B este

Διαβάστε περισσότερα

Subiecte Clasa a VII-a

Subiecte Clasa a VII-a lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate

Διαβάστε περισσότερα

2 Transformări liniare între spaţii finit dimensionale

2 Transformări liniare între spaţii finit dimensionale Transformări 1 Noţiunea de transformare liniară Proprietăţi. Operaţii Nucleul şi imagine Rangul şi defectul unei transformări 2 Matricea unei transformări Relaţia dintre rang şi defect Schimbarea matricei

Διαβάστε περισσότερα

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este

Διαβάστε περισσότερα

Laborator 11. Mulţimi Julia. Temă

Laborator 11. Mulţimi Julia. Temă Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.

Διαβάστε περισσότερα

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Subspatii ane Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Oana Constantinescu Oana Constantinescu Lectia VI Subspatii ane Table of Contents 1 Structura de spatiu an E 3 2 Subspatii

Διαβάστε περισσότερα

Subiecte Clasa a V-a

Subiecte Clasa a V-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

Διαβάστε περισσότερα

4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica

Διαβάστε περισσότερα

Seminar Algebra. det(a λi 3 ) = 0

Seminar Algebra. det(a λi 3 ) = 0 Rezolvari ale unor probleme propuse "Matematica const în a dovedi ceea ce este evident în cel mai puµin evident mod." George Polya P/Seminar Valori si vectori proprii : Solutie: ( ) a) A = Valorile proprii:

Διαβάστε περισσότερα

riptografie şi Securitate

riptografie şi Securitate riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare

Διαβάστε περισσότερα

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1) Universitatea din ucureşti.7.4 Facultatea de Matematică şi Informatică oncursul de admitere iulie 4 omeniul de licenţă alculatoare şi Tehnologia Informaţiei lgebră (). Fie x,y astfel încât x+y = şi x +

Διαβάστε περισσότερα

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1 2. Circuite logice 2.2. Diagrame Karnaugh Copyright Paul GASNER Diagrame Karnaugh Tehnică de simplificare a unei expresii în sumă minimă de produse (minimal sum of products MSP): Există un număr minim

Διαβάστε περισσότερα

Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi

Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Iteraţia 2 Reprezentare internă 3 Operaţii

Διαβάστε περισσότερα

LUCRAREA 1 INTRODUCERE ÎN MATLAB

LUCRAREA 1 INTRODUCERE ÎN MATLAB LUCRAREA 1 INTRODUCERE ÎN MATLAB 1.1. Introducere MATLAB este un pachet de programe dedicat calcului numeric şi reprezentărilor grafice. Elementul de bază cu care operează este matricea, de aici provenind

Διαβάστε περισσότερα

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:, REZISTENTA MATERIALELOR 1. Ce este modulul de rezistenţă? Exemplificaţi pentru o secţiune dreptunghiulară, respectiv dublu T. RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii

Διαβάστε περισσότερα

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE 5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.

Διαβάστε περισσότερα

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt. liberi 1 liberi 2 3 4 Segment orientat liberi Fie S spaţiul geometric tridimensional cu axiomele lui Euclid. Orice pereche de puncte din S, notată (A, B) se numeşte segment orientat. Dacă A B, atunci direcţia

Διαβάστε περισσότερα

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)). Teoremă. (Y = f(x)). Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism Demonstraţie. f este continuă pe X: x 0 X, S Y (f(x 0 ), ε), S X (x 0, ε) aşa ca f(s X (x 0, ε)) = S Y (f(x 0 ), ε) : y

Διαβάστε περισσότερα

Laborator 6. Integrarea ecuaţiilor diferenţiale

Laborator 6. Integrarea ecuaţiilor diferenţiale Laborator 6 Integrarea ecuaţiilor diferenţiale Responsabili: 1. Surdu Cristina(anacristinasurdu@gmail.com) 2. Ştirbăţ Bogdan(bogdanstirbat@yahoo.com) Obiective În urma parcurgerii acestui laborator elevul

Διαβάστε περισσότερα

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER 2. Circuite logice 2.5. Sumatoare şi multiplicatoare Copyright Paul GASNER Adunarea în sistemul binar Adunarea se poate efectua în mod identic ca la adunarea obişnuită cu cifre arabe în sistemul zecimal

Διαβάστε περισσότερα

8 Intervale de încredere

8 Intervale de încredere 8 Intervale de încredere În cursul anterior am determinat diverse estimări ˆ ale parametrului necunoscut al densităţii unei populaţii, folosind o selecţie 1 a acestei populaţii. În practică, valoarea calculată

Διαβάστε περισσότερα

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, aprilie 7 Proba scrisă la MATEMATICĂ SUBIECTUL I (3 puncte) ) (5 puncte) Fie matricele A = 3 4 9 8

Διαβάστε περισσότερα

Curs 2 Şiruri de numere reale

Curs 2 Şiruri de numere reale Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un

Διαβάστε περισσότερα

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I. Modelul 4 Se acordă din oficiu puncte.. Fie numărul complex z = i. Calculaţi (z ) 25. 2. Dacă x şi x 2 sunt rădăcinile ecuaţiei x 2 9x+8 =, atunci să se calculeze x2 +x2 2 x x 2. 3. Rezolvaţi în mulţimea

Διαβάστε περισσότερα

10. STABILIZATOAE DE TENSIUNE 10.1 STABILIZATOAE DE TENSIUNE CU TANZISTOAE BIPOLAE Stabilizatorul de tensiune cu tranzistor compară în permanenţă valoare tensiunii de ieşire (stabilizate) cu tensiunea

Διαβάστε περισσότερα

Să se arate că n este număr par. Dan Nedeianu

Să se arate că n este număr par. Dan Nedeianu Primul test de selecție pentru juniori I. Să se determine numerele prime p, q, r cu proprietatea că 1 p + 1 q + 1 r 1. Fie ABCD un patrulater convex cu m( BCD) = 10, m( CBA) = 45, m( CBD) = 15 și m( CAB)

Διαβάστε περισσότερα

28. SUPRADEFINIREA OPERATORILOR

28. SUPRADEFINIREA OPERATORILOR 28. SUPRADEFINIREA OPERATORILOR Pentru un tip clasă se poate defini un set de operatori asociaţi prin supradefinirea operatorilor existenţi, ceea ce permite realizarea de operaţii specifice cu noul tip

Διαβάστε περισσότερα

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3 SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest

Διαβάστε περισσότερα

Geometrie computationala 2. Preliminarii geometrice

Geometrie computationala 2. Preliminarii geometrice Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,

Διαβάστε περισσότερα

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2 .1 Sfera Definitia 1.1 Se numeşte sferă mulţimea tuturor punctelor din spaţiu pentru care distanţa la u punct fi numit centrul sferei este egalăcuunnumăr numit raza sferei. Fie centrul sferei C (a, b,

Διαβάστε περισσότερα

a. 11 % b. 12 % c. 13 % d. 14 %

a. 11 % b. 12 % c. 13 % d. 14 % 1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul

Διαβάστε περισσότερα

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii Clasa a IX-a 1 x 1 a) Demonstrați inegalitatea 1, x (0, 1) x x b) Demonstrați că, dacă a 1, a,, a n (0, 1) astfel încât a 1 +a + +a n = 1, atunci: a +a 3 + +a n a1 +a 3 + +a n a1 +a + +a n 1 + + + < 1

Διαβάστε περισσότερα

1.4 Schimbarea bazei unui spaţiu vectorial

1.4 Schimbarea bazei unui spaţiu vectorial Algebră liniară, geometrie analitică şi diferenţială. Schimbarea bazei unui spaţiu vectorial După cum s-a văzut deja, într-un spaţiu vectorial V avem mai multe baze, iar un vector x V va avea câte un sistem

Διαβάστε περισσότερα

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite Capitolul 4 Integrale improprii 7-8 În cadrul studiului integrabilităţii iemann a unei funcţii s-au evidenţiat douăcondiţii esenţiale:. funcţia :[ ] este definită peintervalînchis şi mărginit (interval

Διαβάστε περισσότερα

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba

Διαβάστε περισσότερα

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă. Sala: 2103 Decembrie 2014 Conf. univ. dr.: Dragoş-Pătru Covei CURS 11: ALGEBRĂ Specializarea: C.E., I.E., S.P.E. Nota: Acest curs nu a fost supus unui proces riguros de recenzare pentru a fi oficial publicat.

Διαβάστε περισσότερα

Progresii aritmetice si geometrice. Progresia aritmetica.

Progresii aritmetice si geometrice. Progresia aritmetica. Progresii aritmetice si geometrice Progresia aritmetica. Definitia 1. Sirul numeric (a n ) n N se numeste progresie aritmetica, daca exista un numar real d, numit ratia progresia, astfel incat a n+1 a

Διαβάστε περισσότερα

z a + c 0 + c 1 (z a)

z a + c 0 + c 1 (z a) 1 Serii Laurent (continuare) Teorema 1.1 Fie D C un domeniu, a D şi f : D \ {a} C o funcţie olomorfă. Punctul a este pol multiplu de ordin p al lui f dacă şi numai dacă dezvoltarea în serie Laurent a funcţiei

Διαβάστε περισσότερα

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Functii Breviar teoretic 8 ianuarie ianuarie 2011 Functii Breviar teoretic 8 ianuarie 011 15 ianuarie 011 I Fie I, interval si f : I 1) a) functia f este (strict) crescatoare pe I daca x, y I, x< y ( f( x) < f( y)), f( x) f( y) b) functia f este (strict)

Διαβάστε περισσότερα

Principiul Inductiei Matematice.

Principiul Inductiei Matematice. Principiul Inductiei Matematice. Principiul inductiei matematice constituie un mijloc important de demonstratie in matematica a propozitiilor (afirmatiilor) ce depind de argument natural. Metoda inductiei

Διαβάστε περισσότερα

V O. = v I v stabilizator

V O. = v I v stabilizator Stabilizatoare de tensiune continuă Un stabilizator de tensiune este un circuit electronic care păstrează (aproape) constantă tensiunea de ieșire la variaţia între anumite limite a tensiunii de intrare,

Διαβάστε περισσότερα

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Aplicaţii ale principiului I al termodinamicii la gazul ideal Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia

Διαβάστε περισσότερα

Concurs MATE-INFO UBB, 25 martie 2018 Proba scrisă la MATEMATICĂ

Concurs MATE-INFO UBB, 25 martie 2018 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, 5 martie 18 Proba scrisă la MATEMATICĂ NOTĂ IMPORTANTĂ: 1 Problemele tip grilă (Partea A pot avea unul

Διαβάστε περισσότερα

Problema a II - a (10 puncte) Diferite circuite electrice

Problema a II - a (10 puncte) Diferite circuite electrice Olimpiada de Fizică - Etapa pe judeţ 15 ianuarie 211 XI Problema a II - a (1 puncte) Diferite circuite electrice A. Un elev utilizează o sursă de tensiune (1), o cutie cu rezistenţe (2), un întrerupător

Διαβάστε περισσότερα

Ecuatii trigonometrice

Ecuatii trigonometrice Ecuatii trigonometrice Ecuatiile ce contin necunoscute sub semnul functiilor trigonometrice se numesc ecuatii trigonometrice. Cele mai simple ecuatii trigonometrice sunt ecuatiile de tipul sin x = a, cos

Διαβάστε περισσότερα

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Cuprins Scheme de algoritmi Divide et impera Exemplificare

Διαβάστε περισσότερα

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale Investeşte în oameni! FONDUL SOCIAL EUROPEAN Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 2013 Axa prioritară nr. 1 Educaţiaşiformareaprofesionalăînsprijinulcreşteriieconomiceşidezvoltăriisocietăţiibazatepecunoaştere

Διαβάστε περισσότερα

Examen AG. Student:... Grupa:... ianuarie 2011

Examen AG. Student:... Grupa:... ianuarie 2011 Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)

Διαβάστε περισσότερα

Programarea Calculatoarelor

Programarea Calculatoarelor Programarea Calculatoarelor Modul 1: Rezolvarea algoritmică a problemelor Introducere în programare Algoritm Obiectele unui algoritm Date Constante Variabile Expresii Operaţii specifice unui algoritm şi

Διαβάστε περισσότερα

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi Lect. dr. Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Algebră, Semestrul I, Lector dr. Lucian MATICIUC http://math.etti.tuiasi.ro/maticiuc/ CURS XI XII SINTEZĂ 1 Algebra vectorială

Διαβάστε περισσότερα

Arhitectura Calculatoarelor. Fizică - Informatică an II. 2. Circuite logice. Copyright Paul GASNER 1

Arhitectura Calculatoarelor. Fizică - Informatică an II. 2. Circuite logice. Copyright Paul GASNER 1 Arhitectura Calculatoarelor Fizică - Informatică an II gasner@uaic.ro 2. Circuite logice Copyright Paul GASNER 1 Funcţii booleene Porţi logice Circuite combinaţionale codoare şi decodoare Cuprins multiplexoare

Διαβάστε περισσότερα

Instructiunea while. Forma generala: while (expresie) instructiune;

Instructiunea while. Forma generala: while (expresie) instructiune; Instructiunea while while (expresie) instructiune; Modul de executie: 1) Se evalueaza expresie, daca expresie = 0 (fals) se iese din instructiunea while, altfel (expresie 0, deci adevarat) se trece la

Διαβάστε περισσότερα

Examen AG. Student:... Grupa: ianuarie 2016

Examen AG. Student:... Grupa: ianuarie 2016 16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex

Διαβάστε περισσότερα

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera. pe ecuaţii generale 1 Sfera Ecuaţia generală Probleme de tangenţă 2 pe ecuaţii generale Sfera pe ecuaţii generale Ecuaţia generală Probleme de tangenţă Numim sferă locul geometric al punctelor din spaţiu

Διαβάστε περισσότερα

9 Testarea ipotezelor statistice

9 Testarea ipotezelor statistice 9 Testarea ipotezelor statistice Un test statistic constă în obţinerea unei deducţii bazată pe o selecţie din populaţie prin testarea unei anumite ipoteze (rezultată din experienţa anterioară, din observaţii,

Διαβάστε περισσότερα

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15 MĂSURI RELE Cursul 13 15 Măsuri reale Fie (,, µ) un spaţiu cu măsură completă şi f : R o funcţie -măsurabilă. Cum am văzut în Teorema 11.29, dacă f are integrală pe, atunci funcţia de mulţime ν : R, ν()

Διαβάστε περισσότερα